package statechart2;

import java.util.ArrayList;
import java.util.List;

public class Partei {
	/** Name der Partei */
	private String name;
	/** Liste aller der Partei angehörigen Politiker */
	private List<Politiker>mitglieder;
	
	/**
	 * Konstruiert eine Partei mit dem angegebenen Namen.
	 * @param name	Parteiname
	 */
	public Partei(String name) {
		this.name = name;
		this.setMitglieder(new ArrayList<Politiker>());
	}
	
	/**
	 * Fügt der Partei ein Mitglied hinzu.
	 * @param name	Name des neuen Mitglieds
	 */
	public void mitgliedHinzufuegen(String name) {
		mitglieder.add(new Politiker(name));
	}
	
	/**
	 * Entfernt alle Parteimitglieder.
	 */
	public void mitgliederZuruecksetzen() {
		this.mitglieder.clear();
	}
	
	/**
	 * Liefert die Parteimitglieder.
	 * @return	Liste aller Parteimitglieder
	 */
	public List<Politiker> getMitglieder() {
		return mitglieder;
	}

	/**
	 * Setzt die Liste der Parteimitglieder.
	 * @param mitglieder	neue Liste der Parteimitglieder
	 */
	public void setMitglieder(List<Politiker> mitglieder) {
		this.mitglieder = mitglieder;
	}

	/**
	 * Liefert den Namen der Partei.
	 * @return	Parteiname
	 */
	public String getName() {
		return name;
	}

	/**
	 * Setzt den Namen der Partei.
	 * @param name	neuer Name
	 */
	public void setName(String name) {
		this.name = name;
	}
	
	/**
	 * Gibt alle Politiker und ihre Zustände aus.
	 * @return	String
	 */
	@Override
	public String toString() {
		String ret = "";
		int zaehler = 1;
		
		for (Politiker p:mitglieder) {
			ret += 	"("+ (zaehler++) +") "
				+	p.toString()
				+	"\n------------------\n";
		}
		return ret;
	}

}
